﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.IO;
using Microsoft.Win32;

namespace monitor_client
{
    static class Program
    {
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            AppDomain.CurrentDomain.UnhandledException += dom_UnhandledException;
            if(FirstStart() && Dependences())
                Application.Run(new AuthentificationForm());
        }

        static void dom_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            MessageBox.Show(e.ExceptionObject.ToString(), @"Unexpected error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

        static private bool Dependences()
        {
            //------------------Проверка наличия .NET Framework--------------------------
            if (!File.Exists(@"C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Data.dll"))
            {
                MessageBox.Show("Файл C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727\\System.Data.dll не найден.\nРабота программы будет прекращена.");
                return false;
            }
            return true;
        }

        static private bool FirstStart()
        {
            if (!Directory.Exists("resources"))
                try
                {
                    Directory.CreateDirectory("resources");
                }
                catch (UnauthorizedAccessException)
                {
                    System.Windows.Forms.MessageBox.Show("Недостаточно прав для работы в директории программы.\r\nПерезапустите программу с правами для записи.", "Ошибка");
                    return false;
                }
            return true;
        }
        
    }
}
